/*
 * commons.c
 *
 *  Created on: 16/11/2011
 *      Author: Fiusilados
 */

#include "../includes/todo_incluido.h"

/***********************************************************************
FUNCION: LeerParametroDeConfiguracion
PROCESO: COMMON
Autor: Cristian Rios
PRE: Pasarle un archivo de texto ya abierto.
POST: Se obtiene un valor en string para el parametro de configuracion que se desea buscar en el archivo
DEVUELVE: un string indicando el valor correspondiente al parametro buscado;
y devuelve -1 en caso de que se haya alcanzado el fin de archivo sin encontrar el parametro buscado
FUNCION PPAL: Buscar un parametro en un archivo de texto y obtener el valor asociado a ese parametro de configuracion
**********************************************************************/
char* LeerParametroDeConfiguracion (char* DELIMITADOR, FILE *arch, uint8_t *err) {

	char linea[MAXLINE];
	char* to;

			while (! feof(arch))
					{

						fgets(linea, MAXLINE, arch);

						const char* from = linea;
						char *delim = (char *)malloc(sizeof(linea));

						uint8_t len_linea = strlen (linea);
					    uint8_t len_delimitador = strlen (DELIMITADOR);
					    uint8_t desde = len_linea - (len_linea - len_delimitador);

					    strncpy(delim, from, len_delimitador);

					    int8_t comparacion = strcmp(DELIMITADOR, delim);

					    if (comparacion == 0){ //si son iguales

					    	to = (char *)malloc(sizeof(linea));
					    	strncpy(to, from + desde, len_linea - len_delimitador);

					    	fseek(arch, 0, SEEK_SET); //Retorno al principio del archivo

					    	return (to);
					    	}
					    else continue;
					    ;

					    }

			if ( feof(arch)) {
				return ("\n"); 	//no se encontro el parametro
				*err = 1;

			}

			return ("\0");
}
